import Vue from 'vue';
import vuex from 'vuex';

// Vue.use(vuex);

/**
 * 4、要改变多个状态就要触发多个mutations方法，太麻烦了
 *   现在可以用actions执行多个mutations方法
 *   父组件触发acction方法：@click="$store.dispatch('_increment')"
 *
 *   · action方法参数是 与store实例具有相同方法和属性的 context 对象（但并不是store）
 *   · 官方推荐 , 将异步操作放在 action 中。
 */
export default new vuex.Store({
  modules: {
    component001: {
      state: {
        count: 20
      },
      mutations: {
        increment(state) {
          state.count++
        }
      },
      actions: {
        _increment(context){
          context.commit('increment')
        },
        //参数解构
       /* _increment ({commit}) {
          commit('increment')
        }*/
        //lambada
        /*_increment: ({commit}) => {
          commit('increment')
        }*/
      }
    }
  },
})
